package cn.com.nou.base.controller.bdm;

import cn.com.nou.base.dao.bdm.CourseCategoryMapper;
import cn.com.nou.base.service.bdm.CourseCategoryService;
import cn.com.nou.common.BaseResponse;
import cn.com.nou.common.entity.NouEnumerationT;
import cn.com.nou.common.entity.Pagination;
import cn.com.nou.common.utils.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("coursecategory")
public class CourseCategoryController {
    @Autowired
    CourseCategoryService courseCategoryService;
    @Autowired
    CourseCategoryMapper courseCategoryMapper;

    @GetMapping("list")
    public ResponseEntity getCourseCategoryList(@RequestBody NouEnumerationT nouEnumerationT, int pageNo, int pageSize) {
        Pagination courseCategoryList = courseCategoryService.getCourseCategoryList(nouEnumerationT, pageNo, pageSize);
        return BaseResponse.generateOKResponseEntity(courseCategoryList);

    }

    @PostMapping("add")
    public ResponseEntity addCourseCategory(@RequestBody NouEnumerationT nouEnumerationT) {
        nouEnumerationT.setId(Utils.getUUID());
        if (courseCategoryService.addCourseCategory(nouEnumerationT) == 1){
            return BaseResponse.generateOKResponseEntity("添加成功");
        }else {
            return BaseResponse.generateOKResponseEntity("添加失败");
        }
    }
    @PostMapping("update")
    public ResponseEntity updateCourseCategory(@RequestBody NouEnumerationT nouEnumerationT){
        if (courseCategoryService.updateCourseCategory(nouEnumerationT) == 1){
            return BaseResponse.generateOKResponseEntity("更新成功");
        }else {
            return BaseResponse.generateOKResponseEntity("更新失败");
        }
    }

    @PostMapping("delete")
    public ResponseEntity deleteCourseCategory(@RequestBody NouEnumerationT nouEnumerationT){
        int code = courseCategoryService.deleteCourseCategory(nouEnumerationT);
        if (code == 1){
            return BaseResponse.generateOKResponseEntity("删除成功");
        }else if (code == 2){
            return BaseResponse.generateOKResponseEntity("课程被使用不能删除");
        }else {
            return BaseResponse.generateBadResponseEntity(500,"error",0);
        }
    }

    @GetMapping("test")
    public List<NouEnumerationT> test() {
//        System.out.println(courseCategoryMapper.getCourseCategoryListCount("courseCategory"));
        NouEnumerationT nouEnumerationT = new NouEnumerationT();
        nouEnumerationT.setType("courseCategory");
        nouEnumerationT.setId("FE43AF4E524D49A98F3C306B2C816B10");
        nouEnumerationT.setItemCode("00000");
        nouEnumerationT.setItemName("问答");
//        return courseCategoryMapper.getUsedEnumCount(nouEnumerationT);
//        System.out.println(courseCategoryMapper.getSameItemCodeOrItemName(nouEnumerationT).size()==0);
        return courseCategoryMapper.getSameItemCodeOrItemName(nouEnumerationT);
    }
}
